Automatic detection of vertebrae boundaries in spine images

ABSTRACT

Methods and apparatus are disclosed to automatically detect vertebrae boundaries in a spine image. A method to detect a vertebra in a spine image is described, the method comprising generating a rectangle approximation of a reference vertebra. The method also including identifying a mask similar to the rectangle approximation and labeling a mask region in the mask. The method also including comparing the mask region to the rectangle approximation and detecting a vertebra in the spine image based on the comparison.

FIELD OF THE DISCLOSURE

This disclosure relates generally to imaging solutions, and, moreparticularly, to methods and systems to automatically detect vertebraeboundaries in spine images.

BACKGROUND

Precise detection of the boundaries of spine vertebrae in magneticresonance images is useful in quantifying spinal deformities andintervertebral disc diseases.

BRIEF SUMMARY

Certain examples provide methods and systems to detect a vertebra in aspine image. An example method includes generating a rectangleapproximation of a reference vertebra. The example method includesidentifying a mask with similar characteristics to the rectangleapproximation and labeling a mask region in the mask. The example methodincludes comparing the mask region to the rectangle approximation anddetecting a vertebra in the spine image based on the comparison.

Another example method includes determining whether a spine image isincluded in a series of images. The example method includes generating arectangle approximation of a reference vertebra in the spine image. Theexample method includes identifying a mask similar to the rectangleapproximation based on a comparison of image intensity and labeling maskregions in the mask based on a comparison of pixel intensity. Theexample method includes generating a window including a portion of themask and comparing a plurality of mask regions within the window to therectangle approximation based on the shape of each mask region and theshape of the rectangle approximation. The example method includesidentifying the mask region closest to the shape of the rectangleapproximation as a vertebra and labeling the location of the vertebra inthe remaining images in the series of images when the spine image isincluded in a series of images.

Another example includes a computer readable storage medium includingcomputer program code to be executed by a processor, the computerprogram code, when executed, to implement a method to detect a vertebrain a spine image. The example method includes generating a rectangleapproximation of a reference vertebra in the spine image. The examplemethod includes identifying a mask similar to the rectangleapproximation and labeling a mask region in the mask. The example methodincludes generating a window including a portion of the mask andcomparing a mask region within the mask to the rectangle approximation.The example method includes determining whether the mask region is avertebra based on the comparison

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a first example implementation of avertebra detector.

FIG. 2 is an example image of a sagittal view of a spine.

FIG. 3 is a block diagram of an example implemented of the example maskregion analyzer of FIG. 1.

FIG. 4 is a block diagram of an example implementation of the examplemask generator of FIG. 3.

FIGS. 5 and 6 are another example image of a sagittal view of a spine.

FIG. 7 is a block diagram of an example implementation of the exampleshape analyzer of FIG. 1.

FIG. 8 is another example image of a sagittal view of a spine.

FIG. 9 is a blown-up image of a sagittal view of a spine.

FIG. 10 is a block diagram of a second example implementation of avertebra detector.

FIG. 11 is a block diagram of an example implementation of the examplepropagator of FIG. 10.

FIGS. 12-14 are another example image of a sagittal view of a spine.

FIG. 15 is a flowchart representative of example machine readableinstructions that may be executed to implement the example vertebradetector of FIG. 1.

FIG. 16 is a flowchart representative of example machine readableinstructions that may be executed to implement the example vertebradetector of FIG. 10.

FIG. 17 is a flowchart representative of example machine readableinstructions that may be executed to implement the example propagator ofFIG. 10.

FIG. 18 is a block diagram of an example processing platform capable ofexecuting the machine readable instructions of FIGS. 15, 16 and 17 toimplement the example vertebra detector of FIGS. 1 and/or 10.

The foregoing summary, as well as the following detailed description ofcertain embodiments of the present invention, will be better understoodwhen read in conjunction with the appended drawings. For the purpose ofillustrating the invention, certain embodiments are shown in thedrawings. It should be understood, however, that the present inventionis not limited to the arrangements and instrumentality shown in theattached drawings.

DETAILED DESCRIPTION

Current clinical approaches to detect boundaries of spine vertebrae inmagnetic resonance images are based on visual inspection and/or manualtracing. Manual tracing is prohibitively time-consuming and, therefore,automatic or semi-automatic methods are highly desirable. The problem isdifficult because of 1) the similarity in intensity profiles betweenvertebral regions and other irrelevant, non-vertebral regions, 2) theintensity inhomogeneity that occurs within the vertebrae, and 3) astrong level of imaging noise in many instances. Therefore, image (orintensity) information by itself is not sufficient. Additionally,comparing images of a subject over a period of time allows detectingchanges, for example, of a tumor. However, the number of images in aseries of images of the subject may be larger than 100 images. Labelinglandmarks in each of these images is too costly.

Vertebra boundary detection allows quantitative and reproduciblereporting of spinal diseases and/or deformities. Detecting vertebraeboundaries is useful in calculating diagnosis measures such as vertebraedimensions, disc dimensions, disc intensity statistics, and benchmarkpoints for disc bulging. User input is sometimes used to identify theboundary of a reference vertebra on a reference image of a spine. Forexample, a healthcare practitioner (e.g., a radiologist, physicianand/or technician) may utilize a computer mouse to select corners on theboundary of a reference vertebra (e.g., a T12 vertebra) in a displayedsagittal image of a spine. This user input is used to approximate theboundary of the reference vertebra. For example, a rectangle isapproximated tracing the boundary of a reference vertebra based on theuser input corners.

Certain characteristics relating to the reference vertebra may becalculated based on the approximated rectangle. For example, astatistical distribution model may be generated describing the pixelintensity of the reference vertebra. Regions in the sagittal image ofthe spine with similar pixel intensities to the reference vertebra maybe identified. Additionally and/or alternatively, a statistical modelmay be generated describing the shape of the reference vertebra.Comparing regions in the spine image with similar pixel intensities anda similar shape may automatically identify additional vertebraedisplayed in the spine image.

Example methods and systems disclosed herein enable automated, accurate,fast and reproducible detection of vertebrae boundaries in spine images.Examples disclosed herein are particularly useful in connection withautomatically detecting vertebrae boundaries in spine images based onminimal user input. Additional example methods and systems disclosedherein enable the automatic propagation of the detected vertebraeboundaries through a series of images.

FIG. 1 is a block diagram of an example implementation of an examplevertebra detector 100. In the illustrated example, the vertebra detector100 is used to identify vertebrae boundaries in a spine image based onminimal user input on a reference (e.g., an initial) vertebra in thespine image. As described above, the identified vertebrae boundaries areused to calculate several diagnosis measures relating to the spine inthe image, such as vertebrae dimensions, disc dimensions, disc intensityand disc bulging benchmarks. User input received by the example vertebradetector 100 is communicated to an example rectangle approximator 102.FIG. 2 is an example sagittal image of a spine 200. In the illustratedexample of FIG. 2, the user (e.g., a healthcare practitioner such as aradiologist, a physician and/or a technician) has selected first throughthird corners 202-206. The example rectangle approximator 102 calculatesa rectangle approximation along the boundary of the reference vertebrabased on the three points. In the illustrated example of FIG. 2, therectangle approximation 208 is generated by the example rectangleapproximator 102. Knowing the boundary of the reference vertebra (e.g.,the rectangle approximation) allows calculating other characteristics ofthe reference vertebra. For example, the distribution of pixel valueswithin the reference vertebra may be calculated. Additionally, thegeneral shape of the reference vertebra may be calculated using theboundary of the reference vertebra. This rectangle approximation (e.g.,the example rectangle approximation 208) is communicated to a maskregion analyzer 104 and a vertebra identifier 106. As described indetail below in connection with FIG. 3, the example mask region analyzer104 uses the rectangle approximation (e.g., the example rectangleapproximation 208) of the reference vertebra to identify regions (e.g.,mask regions) in a mask of the spine image with similar pixelintensities as the reference vertebra. These identified mask regions areused to identify mask regions in the spine image. For example, twoadjacent pixels with similar pixel intensities are identified (e.g.,labeled) as a mask region. In some examples, the example mask regionanalyzer 104 records the labeled mask regions in an example storagedevice 108.

The example vertebra identifier 106 uses the rectangle approximation(e.g., the example rectangle approximation 208) of the referencevertebra received from the example rectangle approximator 102 and themask regions identified by the example mask region analyzer 104 toidentify mask regions in the mask with a similar shape as the referencevertebra. The example vertebra identifier 106 compares the shape of thereference vertebra to the shape of each mask region received from theexample mask region analyzer 104 and/or the example storage device 108.The mask regions most similar in shape to the reference vertebra areidentified as vertebrae and their boundaries are identified accordingly.In some examples, the example vertebra identifier 106 stores thedetected vertebrae boundaries in the example storage device 108.

FIG. 3 illustrates an example implementation of the example mask regionanalyzer 104 of FIG. 1. The example mask region analyzer 104 identifiesa mask similar to the rectangle approximation of the reference vertebrareceived from the example rectangle approximator 102 based on imageintensity. In the illustrated example, a mask (e.g., a binary mask)describes the ON/OFF status of each pixel in the image. For example, ina 3×3 pixel image, a first mask may include all 9 pixels in the ONstatus. A second mask may include the first pixel in the first row in anOFF status and the remaining pixels in the ON status. In some examples,the mask may be described by a matrix. Identifying the mask similar tothe rectangle approximation based on image intensity allows mask regionswithin the spine image to be identified. These mask regions are thenanalyzed by the example vertebra identifier 106 to find a mask region(s)similar to the reference vertebra in shape.

In the illustrated example of FIG. 3, the mask region analyzer 104receives the rectangle approximation (e.g., the example rectangleapproximation 208 of FIG. 2) of the reference vertebra from therectangle approximator 102 and builds a statistical distribution modelbased on the image intensity. For example, the intensity distributionbuilder 302 builds a statistical distribution model using the pixelintensity values inside the rectangle approximation. In the illustratedexample of FIG. 3, the intensity distribution model describing therectangle approximation 208 is a probability density function (e.g.,kernel density estimation).

As an illustrative example, the intensity distribution model of therectangle approximation 208 (M) is a vector of size J, where J is thenumber of bins (e.g., J=255) for intensity values. The j^(th) value ofthe intensity distribution model of the rectangle approximation 208 M isdenoted M(j), j=1 . . . J, and is the probability of having an intensityvalue equal to j. However, other statistical distribution models may beused.

The intensity distribution model M built by the example intensitydistribution builder 302 is compared to a mask generated by the exampleoptimizer 304. The example optimizer 304 of FIG. 3 identifies the maskmost similar to the rectangle approximation 208 based on the imageintensity (e.g., the distribution of pixels). The example optimizer 304calculates a similarity score including a Bhattacharyya distance and asmoothing factor. In the illustrated example, the Bhattacharyya distancedescribes the overlap between two distributions. For example, theBhattacharyya distance describes the overlap between a distributiondescribing the rectangle approximation and a distribution describing themask. The smoothing factor attempts to reduce noise in the mask. Forexample, the smoothing factor improves the similarity score of the maskby reducing (or eliminating) noisy data (e.g., small scale mask regions)in the mask. When the similarity score reaches a minimum value, the maskis identified as most similar to the rectangle approximation 208 of thereference vertebra. The example mask region labeler 316 receives theoutput from the example optimizer 304 a mask with regions (e.g., maskregions) of similar pixel intensities. The example mask region labeler316 labels (e.g., identifies) mask regions in the mask that are used bythe example vertebra identifier 106 of FIG. 1 to identify additionalvertebrae boundaries in the spine image.

In the illustrated example of FIG. 3, the optimizer 304 includes a maskgenerator 306, a distance calculator 308, a smoothing generator 310, asimilarity calculator 312 and a comparator 314. As described in detailbelow in connection with FIG. 4, the example mask generator 306generates a new mask that will improve the similarity score of thecurrent mask using the similarity score of the mask used in the previousiteration. For example, the mask generator 306 of FIG. 4 calculateswhether changing the status of a pixel in the mask from ON to OFF willincrease or decrease the similarity score (e.g., the Bhattacharyyameasure of similarity between two distributions). The example maskgenerator 306 repeats this calculation for every pixel in the imageuntil a new mask is calculated. This new mask is output to the exampledistance calculator 308 and the example smoothing generator 310 and usedto calculate a similarity score of the mask and the rectangleapproximation 208.

FIG. 4 illustrates an example implementation of the example maskgenerator 306 of FIG. 3. The example mask generator 306 generates a maskthat is compared with the intensity distribution model of the rectangleapproximation 208 built by the example intensity distribution builder302. As described below in connection to the example comparator 314 ofFIG. 3, when the mask is not identified as the optimal mask (e.g., themask most similar to the reference vertebrae in image intensity), theexample mask generator 306 generates a new mask. Generating a new maskmay include switching the status of one pixel (e.g., ON to OFF) orswitching the status of any other number of pixels. Attempting togenerate and compare every possible combination of ON and OFF status foreach pixel is a time-consuming and inefficient method of identifying theoptimal mask. Thus, the example mask generator 306 uses the previousiteration mask and calculates the impact switching a pixel has on alocalized level before the overall mask is processed (e.g., compared tothe image intensity of the rectangle approximation 208). As a result, arelatively faster comparison determining whether changing the status ofa pixel increases the similarity score of the overall mask is performedand the status of the pixel stays the same or changes based on thecomparison. In some examples, this comparison is performed on eachpixel. Doing this comparison on a local level ensures the similarityscore of each mask does not decrease.

In the illustrated example of FIG. 4, the mask generator 306 includes aniteration counter 402, an output generator 404, an OFF calculator 406,an ON calculator 408 and a comparator 410. The example iteration counter402 identifies whether the example mask generator 306 has previouslygenerated a mask. For example, when the mask generator 306 is initiated,the iteration counter 402 outputs to the example output generator 404 anegative indication (e.g., no, 0, false, etc.) indicating that noprevious masks have been generated. As the example mask generator 306uses the mask and similarity score of the previous iteration to generatea new mask, when a negative indication from the example iterationcounter 402 is received, the example output generator 404 outputs a maskwith all pixels in the ON status and a similarity score equal to zero(0). Alternatively, other pixel combinations are possible to use as aninitial mask. As described above, the output from the example outputgenerator 404 is received by the example distance calculator 308 andexample smoothing generator 310 of FIG. 3 to calculate a similarityscore between the masks and the intensity distribution model of therectangle approximation 208.

On the other hand, when a previous iteration has already beencalculated, the example iteration counter 402 outputs a positiveindication (e.g., yes, 1, true, etc.) to the example output generator404. The example output generator 404 outputs the mask calculated duringthe previous iteration to the example OFF calculator 406 and the exampleON calculator 408. In the illustrated example of FIG. 4, the OFFcalculator 406 calculates a scalar value M_(p,I)(0) assuming the pixelis in the OFF status. In the illustrated example, the M_(p,I)(0)function is calculating a value of the image intensity (M) of a pixel(p) in the image (I) with the pixel value set at zero (0). This scalarvalue includes, from the previous iteration, the Bhattacharyya score ofthe mask and the distribution of intensity corresponding to the image atthat pixel. Similarly, a scalar value M_(p,I)(1) assuming the pixelremains is in the ON status is calculated by the example ON calculator408.

In the illustrated example, the comparator 410 compares the output fromthe OFF calculator 406 and the ON calculator 408 and determines whetherthe ON/OFF status of the pixel should be switched. In order to minimizethe distance between the mask and the intensity distribution model ofthe rectangle approximation 208, the score at each pixel should beminimized. Thus, when the scalar value from the OFF calculator 406(e.g., M_(p,I)(0)) is less than the scalar value calculated by the ONcalculator 408 (e.g., M_(p,I)(1)), the pixel status is switched to OFF.Otherwise, the pixel status remains in the ON status. In the illustratedexample, the example output generator 404 records the optimal pixelstatus (e.g., ON or OFF) of the pixel and similar calculations areperformed for the remaining pixels in the image. Once the optimal pixelstatus of each pixel is determined, the example mask generator 306outputs the new mask to the example distance calculator 308 and theexample smoothing generator 310 to calculate a similarity score of thenew mask and the rectangle approximation 208.

The example distance calculator 308 illustrated in FIG. 3 measures theamount of overlap (e.g., similarity) between two distributions. Forexample, the distance calculator 308 calculates the Bhattacharyyacoefficient measuring the overlap between the distribution of pixelvalues within the mask output by the example mask generator 306 and theintensity distribution model of the rectangle approximation 208. TheBhattacharyya coefficient ranges from zero (0) to one (1) wherein a zeroindicates that there is no overlap and a one indicates a perfect matchbetween the distributions. The Bhattacharyya coefficient of thesimilarity score ensures the mask is consistent with the intensitydistribution model of the rectangle approximation 208.

The example smoothing generator 310 generates a smoothing factor used incalculating the similarity score. In the illustrated example, thegenerated smoothing factor removes small and/or isolated labels due toimaging noise. As a result, the example smoothing generator 310 ensureslabel consistency of neighboring pixels. For example, the smoothinggenerator 310 receives a mask and reduces the noise in the mask byidentifying irregular pixels. For example, a pixel in the ON statussurrounded by pixels in the OFF status is likely the result of noise inthe image data. Thus, the example smoothing generator 310 addresses theirregular pixel to improve the similarity score. The example similaritycalculator 312 receives the Bhattacharyya coefficient from the exampledistance calculator 308 and the smoothing factor from the examplesmoothing generator 310 and calculates a similarity score. For example,the similarity calculator 312 adds the Bhattacharyya coefficient and thesmoothing factor. As a result, the optimal similarity score of a mask isobtained when an optimal Bhattacharyya coefficient and an optimalsmoothing factor are identified. For example, a mask with increasedsimilarity (e.g., a low Bhattacharyya coefficient) but with increasednoise may not be optimal compared to a mask with less similarity butwith less noise.

The similarity score output by the example similarity calculator 312 isreceived by the example comparator 314. In the illustrated example ofFIG. 3, the comparator 314 calculates the difference between thesimilarity score of the current mask and the similarity score of aprevious mask (e.g., the mask analyzed during the previous iteration).In some examples, the comparator 314 stores the similarity score fromthe previous iteration in a local memory or register. When thedifference between the two similarity scores is greater than athreshold, the example comparator 314 outputs an indication to generatea new mask. For example, when the difference between the similarityscore of the current mask and the similarity score of the mask from theprevious iteration is greater than 1*10⁻³ (0.001), the examplecomparator 314 outputs to the example mask generator 306 an indicationto generate a new mask.

On the other hand, when the difference is less than (or equal to) thethreshold (0.001), the example comparator 314 determines the optimalmask (e.g., the mask most similar to the intensity distribution model ofthe rectangle approximation 208 based on the distribution of pixelvalues) is identified and the mask is further analyzed for mask regions.For example, when the difference between the similarity score receivedfrom the example similarity calculator 312 (e.g., the similarity scoreof the current mask) and the similarity score of the mask from theprevious iteration is less than (or equal to) the threshold (0.001), theexample comparator 314 outputs the mask to the example mask regionlabeler 316. A typical example of the result obtained by the exampleoptimizer 304 is shown in FIG. 5. In the illustrated example of FIG. 5,portions of the image with similar image intensity to the referencevertebra are identified by the boundary 502. While a threshold of 1*10⁻³is used in the example, other thresholds are also possible. Additionallyand/or alternatively, the example comparator 314 may compare thesimilarity score of the current mask to a minimal value and determinethe optimal mask is identified when the similarity score is greater thanthe threshold. In some examples, the optimal mask is identified when thesimilarity score is less than a threshold.

As the image intensity of the mask, which represents the entire spineimage, is compared to the intensity distribution model of the rectangleapproximation 208 of only the reference vertebra, irrelevant and/ornon-vertebral regions within identified boundaries that have imageintensities similar to the reference vertebra may be identified. Forexample, a region identified within another region is known as a hole.In the illustrated example of FIG. 5, the boundary of region 504 iswithin the boundary of region 506. Thus, while identifying boundarieswithin the spine image is helpful in identifying additional vertebrae,knowing only the boundaries is insufficient to do so.

In the illustrated example of FIG. 3, the mask region labeler 316receives the optimal mask from the example optimizer 304 and labels maskregions in the mask. For example, two adjacent pixels with similar pixelintensities are identified (e.g., labeled) as a mask region. In someexamples, each label is identified by a different color. In theillustrated example of FIG. 6, similarly labeled mask regions areindicated through shades of gray. For example, mask regions labeled 602are a different shade of gray than mask regions labeled 604 and maskregions labeled 606. As it is known that vertebrae do not contain holes(e.g., hole 504 in FIG. 5), the example mask region labeler 316 alsoremoves holes in the mask. For example, there is no mask region in FIG.6 labeled within the mask region identified by boundary 506 (shown bythe arrow 608). Removing holes addresses the problem of noise andintensity inhomogeneity within the vertebrae regions. Identifying maskregions within a binary mask and removing holes may be done based onstandard image processing techniques. Therefore, it is not explained ingreater detailed here. In the illustrated example of FIG. 3, the examplemask region labeler 316 of FIG. 3 stores information regarding theidentified mask regions in a local memory, a register and/or a storagedevice such as the example storage device 108 of FIG. 1. For example,the boundary coordinates of each mask region may be stored.

FIG. 7 illustrates an example implementation of the example shapeanalyzer 106 of FIG. 1. In the illustrated example of FIG. 7, the shapeanalyzer 106 analyzes the shape of labeled mask regions to determinewhether a mask region is a vertebra. As described above, the exampleshape analyzer 106 of FIG. 7 receives a rectangle approximation (e.g.,the example rectangle approximation 208 of FIG. 2) of the referencevertebra from the example rectangle approximator 102. Using theboundaries of the rectangle approximation, the example shape analyzer106 builds a statistical distribution model describing the shape of therectangle approximation. As described below in connection with theexample window generator 704, the example shape analyzer 106 generates a“sliding” window that limits the number of mask regions analyzed. Usingknown anatomical information about the overall shape of the spine aswell as the shape of individual vertebrae, the shape analyzer 106traverses the spine image from top to bottom. By doing so, a large setof irrelevant mask regions in the image are removed from analysis. Theexample shape analyzer 106 also receives information regarding maskregions labeled in the spine image by the example mask region analyzer104. For example, the shape analyzer 106 receives information describingthe location of each mask region and/or information describing theboundary of each mask region located within the window. Informationregarding the boundary of each mask region is used by the example shapeanalyzer 106 to build a statistical distribution model describing theshape of each labeled mask region. Based on the results of a comparisonof the statistical distribution models of the rectangle approximationand the mask regions, a determination is made regarding whether the maskregion is a vertebra.

In the illustrated example of FIG. 7, the shape analyzer 106 includes ashape distribution builder 702, a window generator 704 and a similaritycalculator 706. As described above, the example shape analyzer 106receives a rectangle approximation (e.g., the example rectangleapproximation 208) of the reference vertebra from the example rectangleapproximator 102. The example shape distribution builder 702 of theillustrated example builds a statistical distribution model describingthe rectangle approximation. For example, the shape distribution builder702 builds a statistical distribution model describing the rectangleapproximation 208 using the distances between the centroid of therectangle approximation 208 and all the pixels located on the boundaryof the rectangle approximation 208. In some examples, the centroid ofthe rectangle approximation is located at the mid-point of the lengthand width of the rectangle approximation. Knowing the centroid and theboundary of the rectangle approximation 208, the example shapedistribution builder 702 calculates the distance between the centroidand each pixel on the boundary of the rectangle approximation 208. Forexample, the Euclidean distance between the centroid and each pixel onthe boundary of the rectangle approximation may be calculated. Similarto the example intensity distribution builder 302 described inconnection with FIG. 3, the example shape distribution builder 702builds a probability density function describing the shape of therectangle approximation based on the calculated distances. However, theuse of other statistical distribution models is also possible.

The example window generator 704 of the illustrated FIG. 7 generates awindow in which all of the mask regions within that window are comparedto the rectangle approximation 208 based on the similarity of shapes.When the example window generator 704 receives an indication to generatea window, the example window generator 704 determines whether the bottomof the spine image was reached. The bottom of the spine image may bedetected by, for example, determining whether the previous windowoverlapped with the bottom of the spine image based on the knowndimensions of the spine image. If the previous window is at the bottomof the screen image, the example window generator 704 stops generatingwindows. When the window is not at the bottom of the spine image, theexample window generator 704 generates a new window and “slides” thewindow downward relative to the previous window based on the location ofthe previously identified vertebra. Sliding the window downward based onthe previously identified vertebra is valid because of the knownanatomical information regarding the shape of the spine. Thus, maskregions located outside the path of the sliding window are known not tobe vertebrae and do not need to be analyzed, which saves processingpower and improves the time needed to automatically detect the vertebraein the spine image.

The example window generator 704 determines a rectangle approximation ofthe previously detected vertebra and calculates a rectangular windowusing the previously detected vertebra. In the instance of the firstwindow generation, when no vertebrae have been previously detected, theexample window generator 704 uses the rectangle approximation 208 of thereference vertebra as a starting point to generate the window.

FIG. 8 illustrates an example output generated during the third windowgeneration iteration. In the illustrated example of FIG. 8, vertebra 802is the reference vertebra, vertebrae 804 and 806 have been previouslydetected (e.g., identified) and a mask region 808 is within a window810. To generate window 810, the example window generator 704 uses thepreviously detected vertebra (e.g., vertebra 806) as a starting point togenerate the window. In the illustrated example, the upper (horizontal)line segment of window 810 is parallel to the lower (horizontal) linesegment of a rectangle approximation of the previously identifiedvertebra (vertebra 806). The mid-point (e.g., centroid) of the upperline segment of window 810 coincides exactly with the centroid of thelower line segment of the rectangle approximation of vertebra 806. Thelength of the upper line segment of window 810 is calculated bymultiplying the length of the lower line segment of the rectangleapproximation of vertebra 806 and a multiplier. In the illustratedexample, the multiplier is equal to two (2). The example windowgenerator 704 generates the side (vertical) line segments of window 810by multiplying the width of the previously detected vertebra (vertebra806) by the same multiplier (2). Thus, in the illustrated example, thewindow generator 704 generates a window 810 with four (4) times the areaof vertebra 806. However, generating a window using other multipliersand dimensions of the previously detected vertebra are also possible.For example, the example window generator 704 may generate the side(vertical) lines segments of a window and the lower (horizontal) linesegment of the window with the same length as the upper line segment ofwindow. As a result, the example window generator 704 generates a squarewindow.

Once the window 810 is generated, the example shape distribution builder702 receives the boundary information for each mask region within thewindow. In some examples, the boundary information is stored in astorage device such as the example storage device 108 of FIG. 1.Additionally and/or alternatively, the boundary information may bestored in a local memory or register of, for example, the example maskregion labeler 316 of FIG. 3. In the illustrated example of FIG. 8, theshape distribution builder 702 receives the boundary informationcorresponding to the mask region 808. Using the boundary information ofthe mask region 808, the example shape distribution builder 702 builds astatistical distribution model (e.g., a probability density function)describing the shape of the mask region 808. In the illustrated example,the shape distribution builder 702 builds a shape distribution modeldescribing each mask region within the window generated by the examplewindow generator 704.

In the illustrated example of FIG. 7, the example similarity calculator706 receives the shape distribution model describing the referencevertebra and the shape distribution model describing the mask region808. As described above in connection with the example distancecalculator B3 of FIG. 3, the example similarity calculator 706 of FIG. 7measures the amount of overlap (e.g., similarity) between the twodistributions. For example, the similarity calculator 706 calculates theBhattacharyya coefficient measuring the overlap between thedistributions of distances of the two received distributions. Theexample similarity calculator 706 repeats this calculation until aBhattacharyya coefficient measuring the similarity of each mask regionwithin the window and the reference vertebra is calculated. The examplesimilarity calculator 706 detects (e.g., identifies) a new vertebra inthe window based on the highest Bhattacharyya coefficient. In someexamples, the similarity calculator 706 records the boundary informationof the new vertebra in a local memory, a register and/or a storagedevice (e.g., the example storage device 108 of FIG. 1). The examplesimilarity calculator 706 indicates to the example window generator 704to generate a new window when the new vertebra is detected. In someexamples, the similarity calculator 706 annotates labels (or text)corresponding to the detected vertebrae boundaries.

As described above, knowing the vertebrae boundaries allowsstraightforward calculations of measures and/or benchmarks useful incomputer-aided diagnosis. FIG. 9 illustrates example measurements andbenchmarks which may be determined based on the vertebrae boundaries 902and subsequently detected inter-vertebral discs 906. For example, oncethe vertebrae boundaries 902 are obtained, the vertebrae dimensions,including vertebrae heights 904 and areas may be calculated. Discdimensions, including disc heights 908 and areas, and disc intensitystatistics, including the mean of intensity values within a disc 910,may also be found. Another example includes identifying benchmark pointsfor disc bulging, including the center of the segment joining corners oftwo neighboring vertebrae 912.

FIG. 10 illustrates a second example implementation of the examplevertebra detector 100 of FIG. 1. As described above in connection withthe example vertebra detector 100 of FIG. 1, the example vertebradetector 1000 is used to automatically detect vertebrae boundaries in aspine image with minimal user input. In addition to the functionalitydescribed above in connection with the example vertebra detector 100 ofFIG. 1, the example vertebra detector 1000 of FIG. 10 automaticallypropagates the identified vertebrae boundaries in the spine image toother images (e.g., slices) in a series of images of the same subject(e.g., patient). For example, the number of images in spine studies maybe larger than 100 images. In some such examples, labeling all of theseimages using the standard approach of manually labeling each boundary,label and/or text annotation is prohibitively time-consuming. Theexample vertebrae detector 1000 of FIG. 10 automates propagating theboundaries of the vertebrae throughout all the images in the series.However, automating propagation of labels and/or text annotations of anyanatomical landmarks of the spine (e.g., disc centroids) is alsopossible. For example, in addition to selecting the three user pointsused to approximate the reference rectangle (e.g., rectangleapproximation 208 of FIG. 2), the healthcare practitioner may alsoselect additional anatomical landmarks in the reference spine image.Alternatively, the healthcare practitioner may select additionalanatomical landmarks in the reference spine image after the vertebraeboundaries are detected.

The example vertebra detector 1000 includes an example rectangleapproximator 1002, an example mask region analyzer 1004 and an examplevertebra identifier 1006 that function similarly to the counterpartcomponents of the example vertebra detector 100 of FIG. 1 Additionally,the example vertebra detector 1000 includes an example storage device1008. Because of the similarity of the like numbered components, thosecomponents from FIG. 1 are not re-described here. A complete descriptionof the system 100 is provided above. To propagate the vertebraeboundaries detected in the reference spine image throughout the otherimages in the series, the example vertebra detector 1000 includes aseries checker 1010 and a propagator 1012.

The example series checker 1010 receives an image and determines whetherthat image is part of a series. For example, the series checker 1010checks metadata appended to the image to determine whether the image ispart of a series of images. When the image is not part of a series, theexample series checker 1010 resets a flag (e.g., flag=0) in the exampleshape analyzer 1006. On the other hand, when the image is part of aseries of images, the example series checker 1010 sets the flag (e.g.,flag=1) in the example shape analyzer 1006 and indicates to the examplepropagator 1012 an image included in a series is being processed.

While the following example methods and systems are described inconnection to vertebrae landmarks identified in a spine image, theexample methods and systems may be used with any landmarks identified inan image. For example, landmarks may be identified (automatically or bya healthcare provider) on a heart image to describe myocardial motion.For instance, tracking landmarks through a series of images may identifyregional mall motion abnormalities of the left ventricle. Thisinformation may be used to better diagnose coronary heart disease, forexample.

As described in further detail below in connection with FIG. 11, theexample propagator 1012 receives the vertebrae boundaries from theexample storage device 1008 and captures pixel coordinates of thereference vertebrae in the reference spine image. For example, thepropagator 1012 identifies the pixel coordinates corresponding to acorner of each of the reference vertebrae. Additionally and/oralternatively, the example propagator 1012 may identify the pixelcoordinates of the respective boundaries of each reference vertebrae. Inthe illustrated example of FIG. 10, the propagator 1012 identifies thedisplacement for each pixel in every image in the series with respect toa neighboring image in the series. The example propagator 1012 builds adisplacement matrix (e.g., a spatial mapping) between a reference imageand any other image in the series (e.g., a target image) by computing apoint-to-point mapping between two neighboring (e.g., consecutive)images in the series. For any image i in the series, the examplepropagator 1012 retrieves the displacement from the displacement matrixand the new vertebrae boundaries of image i are displayed.

FIG. 11 illustrates an example implementation of the example propagator1012 of FIG. 10. The example propagator 1012 receives a series of imagessuch as images of a patient taken at different moments in time. Theexample propagator 1012 generates a statistical distribution modeldescribing each image and aligns two images. By doing so, thedisplacement between any two images in the series may be calculated. Asdescribed below in connection with the example displacement matrixbuilder 1106, the example propagator 1012 calculates the distance areference image needs to be offset in the x-axis and/or the y-axis(using the Cartesian map) to align with a target image. The examplepropagator 1012 repeats this for every image in the series and generatesa matrix to store the calculated displacement information. Thus, byproviding input indicating the location of reference points on areference image, the example propagator 1012 automatically identifiesthe location of the corresponding points in any image in the series.This is helpful, for example, when a healthcare practitioner isreviewing a series of images taken of the same subject over a period oftime. For example, a series of sagittal images of the spine taken whilethe subject is breathing introduces movement of a reference point(s) ineach image due to inhalation and exhalation. Thus, by being able toautomatically locate and display the location of the reference point(s)in each image proves useful in reducing the time to identify the changein position of a reference point(s) through a series of images.

The example propagator 1012 of FIG. 11 includes an example storagechecker 1102, an example distribution model generator 1104, an exampledisplacement matrix builder 1106, an example landmark locator 1114, anexample landmark propagator 1116 and an example matrix storage device1118. When the example propagator 1012 is initiated, the example storagechecker 1102 determines whether the series of images has beenpreprocessed and is stored in a storage device such as the examplematrix storage device 1118. If the series of images is stored in thestorage device, the example storage checker 1102 receives thepreprocessed information regarding the images. For example, the examplestorage checker 1102 receives statistical distribution models describingeach image in the series from the example matrix storage device 1118.

On the other hand, when the series of images is not stored in thestorage device, the example storage checker 1102 indicates to theexample distribution model generator 1104 to generate statisticaldistribution models of the images. The example distribution modelgenerator 1104 generates a statistical distribution model based on imageintensity similar to the example intensity distribution builder 302 ofFIG. 3. That is, the example distribution model generator 1104 builds aprobability density estimation, such as a kernel density estimation,describing the image based on the intensity (e.g., the pixeldistribution) of the image. The example distribution model generator1104 repeats this process for each image in the series and stores theinformation (e.g., statistical distribution model information) in astorage device, such as the example matrix storage device 1118.

The example displacement matrix builder 1106 receives the generatedstatistical distribution models of the images and calculates thedistance (e.g., displacement) between corresponding points in theimages. This information is used by the example landmark propagator 1116to determine and display the location of a reference point in a selectedimage (e.g., a target image) in the series.

In the illustrated example of FIG. 11, the displacement matrix builder1106 includes an image selector 1108, a transformer 1110 and adisplacement calculator 1112. When the example displacement matrixbuilder 1106 receives the statistical distribution model informationgenerated by the example distribution model generator 1104, the exampleimage selector 1108 determines the number of images in the series andselects the middle image as the reference image. For example, if aseries of images includes 12 slices, slice 6 is set as the referenceimage by the example image selector 1108. The example image selector1108 selects a first neighboring image from the reference image (e.g.,slice 5) and a second neighboring image from the reference image (e.g.,slice 7) as first and second target images, respectively. The exampletransformer 1110 uses the statistical distribution model information toalign the reference image (slice 6) with the first target image (slice5). The example transformer 1110 also aligns the reference image (slice6) with the second target image (slice 7). The example transformer 1110of FIG. 11 continues to transform the reference image and the targetimage until the maximum similarity is found. For example, thetransformer 1110 may use a Jacobian transformation to maximize thecorrelation between the reference image aligned with the target image.By doing so, the example transformer 1110 generates a point-to-pointmapping between every point on the reference image to the points on thetarget image. In the illustrated example of FIG. 11, each “point” is apixel. However, the use of other points, for example, locations ofinterest points and/or geometrical features (e.g., line segments,curves, etc.), is also possible.

Using the point-to-point mapping, the example displacement calculator1112 calculates the displacement (e.g., offset) between a pixel in thereference image and the target image. For example, referring to thelower left corner of the image as the origin in a Cartesian map, thepixel coordinates (x, y) may be used to represent the location of apixel in the reference image. The example displacement calculator 1112uses the point-to-point mapping generated by the example transformer1110 to calculate the displacement between the pixel coordinates of apixel in the reference image and the pixel coordinates of thecorresponding pixel in the target image. That is to say, when a pixellocated at (x, y) in the reference image and the corresponding pixel inthe target image is at the pixel coordinates (x+dx, y+dy), thedisplacement between the pixel coordinates is represented as (dx, dy).In the illustrated example of FIG. 11, the displacement calculator 1112calculates the displacement between every pixel in the reference imageto the target image, and stores the displacement in a storage device,such as the example matrix storage device 1118. The example matrixstorage device 1118 stores the displacements in a matrix from which thedisplacement information may be recalled. FIG. 12 is an example imagegenerated by the example displacement matrix builder 1106 when thedisplacements are stored as displacement vectors in the matrix stored inthe example matrix storage device 1118. Slice 8 of FIG. 12 displays anoutput of the displacement vectors when transforming from slice 7 toslice 8 (or vice versa). Similarly, slice 12 of FIG. 12 displays anoutput of the displacement vectors stored in the example matrix storagedevice 1118 when transforming from slice 11 to slice 12 (or vice versa).For example, a healthcare practitioner may look at the outputdisplacement vectors over the series of images to determine which areasof the image changed more than other areas in the image between twoconsecutive images. In some examples, the displacement calculator 1112outputs to the example image selector 1108 to set the processed targetimage as the new reference image and to calculate a new target image.For example, the image selector 1108 sets slice 5and slice 7as thereference images and sets slice 4 and slice 8, respectively, as two newtarget slices.

As an illustrative example, the example displacement matrix builder 1106may include non-rigid image registration. For example, rather than usinga linear transformation to align the target image and the referenceimage, an elastic transformation using local warping to align the targetimage and the reference image is used. In the illustrated example ofFIG. 11, a moving mesh generation algorithm including Jacobiantransformations is included to build the displacement matrix.

The example landmark locator 1114 receives a landmark(s) (e.g., areference point(s)) on a reference image, and that landmark(s) ispropagated from the reference image throughout the series of images. Inthe illustrated example, the example landmark located 1114 receives thereference point automatically from the example storage device 1008 ofFIG. 10. Additionally and/or alternatively, the example landmark locator1114 may receive the landmarks via user input and/or a combination ofautomatic and manual user input. For example, the vertebrae boundariesstored in the example storage device 1008 by the example shape analyzer1006 may be displayed to the user via a user interface (e.g., amonitor). The healthcare practitioner may then deselect a displayedvertebra boundary and/or select an additional landmark such as aninter-vertebral disc. The example landmark locator 1114 of FIG. 11identifies the pixel coordinates of the landmark in the reference image.For example, using the Cartesian map with the origin in the lower leftcorner of the image, the landmark locator 1114 locates the pixelcoordinates (x, y) of each identified landmark. In some examples, thelandmark locater 1114 may record the pixel coordinates of eachidentified landmark in a local memory, a register and/or a storagedevice (e.g., the example storage device 1008 of FIG. 10).

The example landmark propagator 1116 receives a target image from theuser and generates the pixel coordinates of the landmarks to display onthe target image. For example, the user (e.g., a healthcarepractitioner) decides to track the location of discs (e.g.,inter-vertebral discs) in a spine image of a subject over a time periodincluding 12 images. The example landmark propagator 1116 receives thepixel coordinates of each identified landmark in the reference image.For example, the landmark propagator 1116 receives the pixel coordinatesfrom the example landmark locator 1114 and/or the example storage device1008. The example landmark propagator 1116 also receives thedisplacement information of each pixel in the series of images. Forexample, the landmark propagator 1116 receives the displacement matrixfrom the example matrix storage device 1118. The example landmarkpropagator 1116 uses the pixel coordinates of each landmark from thereference image and the pixel displacement information to calculate thepixel coordinates of each landmark in each of the target images. Forexample, to calculate the pixel coordinates of a first landmark in slice4 of the 12 slice series, the landmark propagator 1116 receives thepixel coordinates of the first landmark in slice 6(x, y), thedisplacement of the first landmark between slice 6 and slice 5 (dx₆₅,dy₆₅) and the displacement of the first landmark between slice 5 andslice 4 (dx₅₄, dy₅₄). The example landmark propagator 1116 thencalculates the pixel coordinates of the first landmark on slice 4 (e.g.,(x+dx₆₅+dx₅₄, y+dy₆₅+dy₅₄). This calculated pixel coordinate isdisplayed to the user.

FIGS. 13 and 14 are two example image series output by the examplepropagator 1012. In the example output of FIG. 13, the user labeled thelocation of vertebrae in slice 6. The vertebrae locations werepropagated from slice 1 to slice 12 by the example propagator 1012. Inthe example out of FIG. 14, the example propagator 1012 propagated thelocation of the labeled inter-vertebral discs in slice 6 from slice 1 toslice 12.

In the illustrated example of FIG. 11, the displacement matrix builder1106 does not involve user input to build the displacement matrix. Thus,this process may be performed offline. For example, when the examplepropagator 1012 receives a series of images, the example propagator 1012may automatically build the displacement matrix describing thedisplacement from one image to another image in the series and store thedisplacement matrix in a storage device to be used at a later time. As aresult, the process of landmark propagation through a series of imagesmay be more efficiently performed by recalling from the storage devicethe necessary displacements rather than calculating the displacementseach time a user identifies a landmark.

While an example manner of implementing the vertebra detector 100 hasbeen illustrated in FIGS. 1, 3, 4 and 7, one or more of the elements,processes and/or devices illustrated in FIGS. 1, 3, 4 and 7 may becombined, divided, re-arranged, omitted, eliminated and/or implementedin any other way. Further, the example rectangle approximator 102, theexample mask region analyzer 104, the example vertebra identifier 106and/or, more generally, the example vertebra detector 100 of FIGS. 1, 3,4 and 7 may be implemented by hardware, software, firmware and/or anycombination of hardware, software and/or firmware. Thus, for example,any of the example rectangle approximator 102, the example mask regionanalyzer 104, the example vertebra identifier 106 and/or, moregenerally, the example vertebra detector 100 could be implemented by oneor more circuit(s), programmable processor(s), application specificintegrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s))and/or field programmable logic device(s) (FPLD(s)), etc. When any ofthe apparatus or system claims of this patent are read to cover a purelysoftware and/or firmware implementation, at least one of the examplerectangle approximator 102, the example mask region analyzer 104 and/orthe example vertebra identifier 106 are hereby expressly defined toinclude a tangible computer readable medium such as a memory, DVD, CD,Blu-ray, etc. storing the software and/or firmware. Further still, theexample vertebra detector 100 of FIGS. 1, 3, 4 and 7 may include one ormore elements, processes and/or devices in addition to, or instead of,those illustrated in FIGS. 1, 3, 4 and 7, and/or may include more thanone of any or all of the illustrated elements, processes and devices.

While an example manner of implementing the vertebra detector 1000 hasbeen illustrated in FIGS. 10 and 11, one or more of the elements,processes and/or devices illustrated in FIGS. 10 and 11 may be combined,divided, re-arranged, omitted, eliminated and/or implemented in anyother way. Further, the example rectangle approximator 1002, the examplemask region analyzer 1004, the example shape analyzer 1006, the exampleseries checker 1010, the example propagator 1012 and/or, more generally,the example vertebra detector 1000 of FIGS. 10 and 11 may be implementedby hardware, software, firmware and/or any combination of hardware,software and/or firmware. Thus, for example, any of the examplerectangle approximator 1002, the example mask region analyzer 1004, theexample vertebra identifier 1006, the example series checker 1010, theexample propagator 1012 and/or, more generally, the example vertebradetector 1000 could be implemented by one or more circuit(s),programmable processor(s), application specific integrated circuit(s)(ASIC(s)), programmable logic device(s) (PLD(s)) and/or fieldprogrammable logic device(s) (FPLD(s)), etc. When any of the apparatusor system claims of this patent are read to cover a purely softwareand/or firmware implementation, at least one of the example rectangleapproximator 1002, the example mask region analyzer 1004, the examplevertebra identifier 1006, the example series checker 1010 and/or theexample propagator 1012 are hereby expressly defined to include atangible computer readable medium such as a memory, DVD, CD, Blu-ray,etc. storing the software and/or firmware. Further still, the examplevertebra detector 1000 of FIGS. 10 and 11 may include one or moreelements, processes and/or devices in addition to, or instead of, thoseillustrated in FIGS. 10 and 11, and/or may include more than one of anyor all of the illustrated elements, processes and devices.

Flowcharts representative of example machine readable instructions forimplementing the vertebra detector 100 of FIG. 1 and/or the vertebradetector 1000 of FIG. 10 are shown in FIGS. 15, 16 and 17. In theillustrated examples, the machine readable instructions comprise aprogram for execution by a processor such as the processor 1812 shown inthe example processing platform 1800 discussed below in connection withFIG. 18. The program may be embodied in software stored on a tangiblecomputer readable medium such as a CD-ROM, a floppy disk, a hard drive,a digital versatile disk (DVD), a Blu-ray disk, or a memory associatedwith the processor 1812, but the entire program and/or parts thereofcould alternatively be executed by a device other than the processor1812 and/or embodied in firmware or dedicated hardware. Further,although the example program is described with reference to theflowcharts illustrated in FIGS. 15, 16 and 17, many other methods ofimplementing the example vertebra detector 100 and/or the examplevertebra detector 1000 may alternatively be used. For example, the orderof execution of the blocks may be changed, and/or some of the blocksdescribed may be changed, eliminated, or combined.

As mentioned above, the example processes of FIGS. 15, 16 and 17 may beimplemented using coded instructions (e.g., computer readableinstructions) stored on a tangible computer readable storage medium suchas a hard disk drive, a flash memory, a read-only memory (ROM), acompact disk (CD), a digital versatile disk (DVD), a cache, arandom-access memory (RAM) and/or any other storage media in whichinformation is stored for any duration (e.g., for extended time periods,permanently, brief instances, for temporarily buffering, and/or forcaching of the information). As used herein, the term tangible computerreadable medium is expressly defined to include any type of computerreadable storage medium and to exclude propagating signals. Additionallyor alternatively, the example processes of FIGS. 15, 16 and 17 may beimplemented using coded instructions (e.g., computer readableinstructions) stored on a non-transitory computer readable medium suchas a hard disk drive, a flash memory, a read-only memory, a compactdisk, a digital versatile disk, a cache, a random-access memory and/orany other storage media in which information is stored for any duration(e.g., for extended time periods, permanently, brief instances, fortemporarily buffering, and/or for caching of the information). As usedherein, the term non-transitory computer readable medium is expresslydefined to include any type of computer readable storage medium and toexclude propagating signals. As used herein, when the phrase “at least”is used as the transition term in a preamble of a claim, it isopen-ended in the same manner as the term “comprising” is open ended.Thus, a claim using “at least” as the transition term in its preamblemay include elements in addition to those expressly recited in theclaim.

FIG. 15 illustrates a flow diagram for an example method or process 1500to automatically detect a vertebra in a spine image. At block 1502, arectangle approximation of a reference (e.g., initial) vertebraidentified by a healthcare practitioner (e.g., a radiologist, physicianand/or technician) is generated. In some examples, the healthcarepractitioner indicates three corners of a reference vertebra in a spineimage by selecting three points on a display of the spine image. Theexample rectangle approximator 102 uses the three known corners of theinitial vertebra to approximate a rectangle approximation of thereference vertebra. For example, by knowing the location of threecorners of the reference vertebra, the rectangle approximator 102approximates the location of the fourth corner of the referencevertebra. The example rectangle approximator 102 uses the four corners(e.g., the three known corners and the fourth approximated corner) togenerate a rectangle approximation of the reference vertebra by drawinglines from one corner to the next. The example rectangle approximator102 communicates the approximated rectangle of the reference vertebra tothe example mask region analyzer 104 and the example shape analyzer 106.

At block 1504, the example mask region analyzer 104 identifies a masksimilar to the image intensity (e.g., distribution of pixels) of theapproximated rectangle of the reference vertebra. For example, thedistance calculator 308 compares the similarity between the imageintensity of the approximated rectangle to the image intensity of amask. At block 1506, the identified mask most similar to the rectangleapproximation in pixel intensity is used to label mask region(s) withinthe mask. For example, two adjacent pixels within the mask with similardistribution of pixels are labeled as the same mask region.

At block 1508, the example shape analyzer 106 compares the shape of therectangle approximation to the shape of the labeled mask regions. Forexample, the window generator 704 generates a window including a labeledmask region(s). The mask region within the window closest in shape tothe rectangle approximation is detected as a vertebra. In some examples,the shape analyzer 106 stores the boundary of the identified vertebra ina storage device, such as the example storage device 108.

FIG. 16 illustrates a flow diagram for an example method or process 1600to automatically detect a vertebra in the spine image and whether thelandmark (e.g., the vertebra boundary) is to propagate through a seriesof images. At block 1602, the example series checker 1010 of the examplevertebra detector 1000 receives a reference image. At block 1604, theexample series checker 1010 determines whether the reference image isone image in a series of images. For example, the series checker 1010may check metadata included with the reference image to see if thereference image is part of a series of images. At block 1606, if thereference image is part of a series, the example series checker 1010outputs an indicator to the example propagator 1012. As described belowin connection with FIG. 17, the example propagator 1012 checks whether adisplacement matrix describing the series of images is stored in thematrix storage device 1118. At block 1608, the example series checker1010 also sets a series flag (e.g., flag=1) at the example shapeanalyzer 1006 indicating the reference image is part of a series ofimages.

At block 1610 in the illustrated example of FIG. 16, the examplerectangle approximator 1002 receives user input from a healthcarepractitioner. For example, the healthcare practitioner selects threecorners of a reference vertebra in a reference image of a spine. Atblock 1612, the example rectangle approximator 1002 generates arectangle approximation of the reference vertebra based on the userinput. The example mask region analyzer 1004 builds a statisticaldistribution model of the rectangle approximation based on the pixeldistribution within the rectangle approximation. The example mask regionanalyzer 1004 uses this distribution model to identify a mask (e.g., abinary mask) similar to the rectangle approximation based on imageintensity. At block 1614, this mask is used to label mask regions withinthe mask. Using the rectangle approximation of the reference vertebra,the example shape analyzer 1006 compares the shape of the labeled maskregions with the shape of the reference vertebra. For example, the shapeanalyzer 1006 builds a statistical distribution model describing therectangle approximation based on the distribution of distances from thecentroid of the rectangle approximation to each of the pixels on theborder of the rectangle approximation. At block 1616, the mask regionsmost similar to the shape of the rectangle approximation are labeled asvertebrae in the spine image and the boundary of each identified (e.g.,detected) vertebra is stored. At block 1618, once the example shapeanalyzer 1006 is done comparing the mask regions, the example shapeanalyzer 1006 checks the status of the series flag. At block 1620, ifthe series flag is set (e.g., flag=1), the boundaries and/or landmarksare propagated through the series of images. If the series flag is notset (e.g., flag=0), the process ends.

FIG. 17 illustrates a flow diagram for an example method or process 1700to propagate a landmark through a series of images. At block 1702, theexample propagator 1012 determines whether a displacement matrixdescribing the input series of images is stored in a storage device. Forexample, the storage checker 1102 checks the matrix storage device 1118if a displacement matrix describing the input series of images isstored. At block 1714, and as described in further detail below, whenthe example storage checker 1102 determines the displacement matrix isstored, the example propagator 1012 locates the pixel coordinates ofeach landmark in the reference image. On the other hand, when nodisplacement matrix describing the series of images is stored in thestorage device, at block 1704, the example distribution model generator1104 generates probability density estimates describing each image inthe series of images based on the distribution of pixels in the image(e.g., image intensity).

At block 1706, the example image selector 1108 selects a reference imageand a target image to align. In the illustrated example, during theinitial selection, the reference image is selected by determining themid-point image in the series of images. On the other hand, if areference image and target image were previously selected, the previoustarget image is selected as the new reference image and a neighboringimage is selected as the new target image. At block 1708, when thereference image and target image are selected, the reference image isaligned with the target image. For example, the images are aligned basedon the statistical distribution models generated by the exampledistribution model generator 1104. At block 1710, once aligned, thedisplacement between the pixel coordinates in the reference image andthe corresponding pixel coordinates in the target image is calculated ofeach pixel. At block 1712, each calculated displacement is stored in astorage device such as the example matrix storage device 1118.

At block 1714, when the example propagator 1012 receives a referenceimage with labeled landmarks (e.g., vertebrae boundaries, textannotations, etc.), the example landmark locator 1114 locates the pixelcoordinates of each landmark in the reference image. In some examples,the landmark locations are automatically detected. For example, theexample vertebra detector 1000 detects the vertebrae boundaries in areference image. Additionally and/or alternatively, the user (e.g., ahealthcare practitioner) manually selects/deselects landmarks in thereference image. At block 1716, once the landmark locations in thereference image are located, the example landmark propagator 1116 usesthe displacements stored in the displacement matrix to calculate thecorresponding landmark location in each of the target images. Forexample, if the user decides to review images 1 through 12 of a 12 imageseries, the example landmark propagator 1116 displays in images 1through 12 the location of each landmark located in the reference image.

FIG. 18 is a block diagram of an example processing platform 1800capable of executing the instructions of FIGS. 15, 16 and 17 toimplement, for example, the vertebra detector 100 and/or the vertebradetector 1000 of FIGS. 1 and/or 10. The processing platform 1800 can be,for example, a server, a personal computer, an audience measuremententity, an Internet appliance, a DVD player, a CD player, a digitalvideo recorder, a Blu-ray player, a gaming console, a personal videorecorder, a set top box, or any other type of computing device.

The processing platform 1800 of the instant example includes a processor1812. For example, the processor 1812 can be implemented by one or moremicroprocessors or controllers from any desired family or manufacturer.

The processor 1812 includes a local memory 1813 (e.g., a cache) and isin communication with a main memory including a volatile memory 1814 anda non-volatile memory 1816 via a bus 1818. The volatile memory 1814 maybe implemented by Synchronous Dynamic Random Access Memory (SDRAM),Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory(RDRAM) and/or any other type of random access memory device. Thenon-volatile memory 1816 may be implemented by flash memory and/or anyother desired type of memory device. Access to the main memory 1814,1816 is controlled by a memory controller.

The processing platform 1800 also includes an interface circuit 1820.The interface circuit 1820 may be implemented by any type of interfacestandard, such as an Ethernet interface, a universal serial bus (USB),and/or a PCI express interface.

One or more input devices 1822 are connected to the interface circuit1820. The input device(s) 1822 permit a user to enter data and commandsinto the processor 1812. The input device(s) can be implemented by, forexample, a keyboard, a mouse, a touchscreen, a track-pad, a trackball,isopoint and/or a voice recognition system.

One or more output devices 1824 are also connected to the interfacecircuit 1820. The output devices 1824 can be implemented, for example,by display devices (e.g., a liquid crystal display, a cathode ray tubedisplay (CRT), a printer and/or speakers). The interface circuit 1820,thus, typically includes a graphics driver card.

The interface circuit 1820 also includes a communication device such asa modem or network interface card to facilitate exchange of data withexternal computers via a network 1826 (e.g., an Ethernet connection, adigital subscriber line (DSL), a telephone line, coaxial cable, acellular telephone system, etc.).

The processing platform 1800 also includes one or more mass storagedevices 1828 for storing software and data. Examples of such massstorage devices 1828 include floppy disk drives, hard drive disks,compact disk drives and digital versatile disk (DVD) drives. The massstorage device 1828 may implement the local storage device.

The coded instructions 1832 of FIGS. 15, 16 and 17 may be stored in themass storage device 1828, in the volatile memory 1814, in thenon-volatile memory 1816, and/or on a removable storage medium such as aCD or DVD.

From the foregoing, it will appreciate that disclosed methods andsystems describe automated, accurate, fast and reproducible detection ofvertebrae boundaries in spine images. The methods and systems allowcomputing automatically several diagnosis measures such as vertebraedimensions, disc dimensions, disc intensity statistics and disc bulgingbenchmarks. The methods and systems allow quantitative and reproduciblereporting of spinal deformities/diseases, and can improve significantlythe accuracy and processing time of spine-analysis procedures. Themethods and systems allow automatically propagating any label placed ona reference image to the rest of the images in the series and toannotate the corresponding anatomical landmarks accurately.

Although certain example methods, apparatus and articles of manufacturehave been described herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus and articles of manufacture fairly falling within the scope ofthe claims of this patent.

What is claimed is:
 1. A method to detect a vertebra in a spine image,the method comprising: generating, using a processor, a rectangleapproximation of a reference vertebra in the spine image; identifying,in the spine image, a mask similar to the rectangle approximation;labeling a mask region in the mask; comparing a shape of the mask regionto the rectangle approximation; and detecting a vertebra in the spineimage based on the comparison.
 2. A method as defined in claim 1 whereingenerating the rectangle approximation further comprises: identifying aplurality of points of the reference vertebra; and generating therectangle approximation based on the plurality of points.
 3. A method asdefined in claim 2 wherein the plurality of points is input by a user.4. A method as defined in claim 1 wherein the mask is a first mask, andwherein identifying the mask similar to the rectangle approximationfurther comprises: describing the rectangle approximation based on adistribution of pixels corresponding to the rectangle approximation;generating a second mask based on a status of each pixel correspondingto pixels in the spine image; calculating a similarity score between thedescription of the rectangle approximation and the second mask; andidentifying the second mask as the first mask when the similarity scoreexceeds a threshold.
 5. A method as defined in claim 4 whereindescribing the rectangle approximation includes building a statisticaldistribution model based on image intensity.
 6. A method as defined inclaim 4 wherein generating the mask further comprises: calculating afirst value when a pixel is in an ON status; calculating a second valuewhen the pixel is in an OFF status; and storing the status of the pixelbased on a difference between the first value and the second value.
 7. Amethod as defined in claim 4 wherein the similarity score includes asimilarity measure and a smoothing factor.
 8. A method as defined inclaim 4 wherein identifying the mask further comprises: calculating afirst similarity score between the second mask and the rectangleapproximation; calculating a second similarity score, the secondsimilarity score calculated prior to the first similarity score; andcomparing the difference of the first similarity score and the secondsimilarity score to a threshold.
 9. A method as defined in claim 1wherein labeling the mask region further comprises: comparing a firstpixel to a second pixel neighboring the first pixel in the mask; andlabeling the first pixel and the second pixel based on the comparison.10. A method as defined in claim 9 wherein the comparison of the firstpixel and the second pixel is based on pixel intensity of the firstpixel and the second pixel.
 11. A method as defined in claim 1 whereincomparing the labeled mask region to the rectangle approximation furthercomprises: describing a shape of the rectangle approximation; describingthe shape of the mask region; and comparing the shape of the rectangleapproximation to the shape of the mask region.
 12. A method as definedin claim 11 wherein describing the shape of the rectangle approximationfurther comprises: identifying a centroid of the rectangleapproximation; calculating a distance from the centroid to a pixel on aboundary of the rectangle approximation; and building a model based onthe calculated distances.
 13. A method as defined in claim 1 whereinlabeling respective mask regions in the mask further comprisesidentifying discs.
 14. A method as defined in claim 1 furthercomprising: locating a landmark on a reference image; determiningwhether the reference image is included in a series of images; and whenthe reference image is included in the series of images, locating thelandmark in the remaining images of the series of images.
 15. A methodas defined in claim 14 wherein the reference image is the spine image.16. A method as defined in claim 14 wherein the landmark is a vertebradetected in the spine image.
 17. A method as defined in claim 14 whereinnon-rigid image registration is used to locate the landmark in theremaining images.
 18. A method as defined in claim 14 wherein thelandmark is identified by a user.
 19. A system to detect vertebra in aspine image, comprising: a processor coupled to a memory and programmedto: determine whether the spine image is included in a series of images;generate a rectangle approximation of a reference vertebra in the spineimage; identify a mask similar to the rectangle approximation based on acomparison of image intensity; label mask regions in the mask based on acomparison of pixel intensity; generate a window including a portion ofthe mask; compare a plurality of mask regions within the window to therectangle approximation based on a shape of each mask region and a shapeof the rectangle approximation; identify the mask region closest to theshape of the rectangle approximation as a vertebra; and propagate thelocation of the vertebra to the remaining images in the series of imageswhen the spine image is included in the series of images.
 20. A tangiblecomputer readable storage medium including computer program code to beexecuted by a processor, the computer program code, when executed, toimplement a method to detect a vertebra in a spine image, the methodcomprising: generating a rectangle approximation of a reference vertebrain the spine image; identifying, in the spine image, a mask similar tothe rectangle approximation; labeling a mask region in the mask;generating a window including a portion of the mask; comparing a shapeof a mask region within the window to the rectangle approximation; anddetermining whether the mask region is the vertebra based on thecomparison.
 21. A tangible computer readable medium as defined in claim20 wherein identifying the mask similar to the rectangle approximationfurther comprises: describing the rectangle approximation based on adistribution of pixels corresponding to the rectangle approximation;generating a mask based on a binary status of each pixel correspondingto pixels in the spine image; calculating a similarity score between thedescription of the rectangle approximation and the mask; and identifyingthe mask when the similarity score exceeds a threshold.
 22. A tangiblecomputer readable medium as defined in claim 21 wherein identifying themask further comprises: calculating a first similarity score between themask and the rectangle approximation; calculating a second similarityscore, the second similarity score calculated prior to the firstsimilarity score; and comparing the difference of the first similarityscore and the second similarity score to a threshold.
 23. A tangiblecomputer readable medium as defined in claim 20 wherein labeling themask region in the mask further comprises: comparing a first pixel to asecond pixel neighboring the first pixel in the mask; and labeling thefirst pixel and the second pixel based on the comparison.
 24. A tangiblecomputer readable medium as defined in claim 20 wherein comparing theshape of the mask region within the mask to the rectangle approximationfurther comprises: describing a shape of the rectangle approximation;describing the shape of the mask region; and comparing the shape of therectangle approximation to the shape of the mask region.
 25. A tangiblecomputer readable medium as defined in claim 20 further comprising:locating a landmark on a reference image; determining whether thereference image is located in a series of images; and when the referenceimage is included in the series of images, locating the landmark inremaining images of the series of images.